package com.itheima.service;

import com.itheima.bean.User;
import com.itheima.dao.UserDao;
import com.itheima.utils.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;

public class UserService {

    /**
     * 登录
     * @param username
     * @param password
     * @return
     */
    public User login(String username , String password){

        //1. 获取SqlSession对象
        SqlSession sqlSession = SqlSessionFactoryUtil.openSession();

        //2. 得到代理
        UserDao dao = sqlSession.getMapper(UserDao.class);

        //3. 调用方法
        User user = dao.findUser(username, password);

        //4. 关闭SQLsession
        sqlSession.close();

        //5. 返回结果
        return user;
    }

    /**
     * 注册
     *      1. 这个方法里面要执行两个操作
     *          1.1 根据用户名去查询用户是否存在
     *              1.1.1 如果存在，不能执行注册功能，告诉上一层：用户名已存在
     *              1.1.2 如果不存在，那么就可以执行注册功能
     *                  a. 注册成功 , 影响行数 > 0
     *                  b. 注册失败 , 影响行数 = 0
     * @param username
     * @param password
     * @return 返回 1 ： 表示注册成功， 返回 0 ： 表示注册失败 ， 返回 -1 表示用户名已存在！
     */
    public int register(String username , String password){

        //1. 获取SqlSession
        SqlSession sqlSession = SqlSessionFactoryUtil.openSession();

        //2. 得到代理
        UserDao dao = sqlSession.getMapper(UserDao.class);

        //3. 调用方法

        //3.1 先查询用户名是否存在
        User user = dao.findByUsername(username);

        //设置result的值是 -1
        int result = -1;

        //如果没有存在这样的用户，那就去执行添加操作
        if(user == null){
            //没有这个用户名
            result = dao.add(username, password);
            sqlSession.commit();
        }

        //5. 关闭session
        sqlSession.close();

        //6. 返回结果
        return result;
    }
}
